Option Strict On
Option Explicit On

'Copyright (c) 2007-2010, William Severance, Jr., WESNet Designs
'All rights reserved.

'Redistribution and use in source and binary forms, with or without modification, are permitted
'provided that the following conditions are met:

'Redistributions of source code must retain the above copyright notice, this list of conditions
'and the following disclaimer.

'Redistributions in binary form must reproduce the above copyright notice, this list of conditions
'and the following disclaimer in the documentation and/or other materials provided with the distribution.

'Neither the name of William Severance, Jr. or WESNet Designs may be used to endorse or promote
'products derived from this software without specific prior written permission.

'Disclaimer: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
'            OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
'            AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER BE LIABLE
'            FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
'            LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
'            INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
'            OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
'            IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

'Although I will try to answer questions regarding the installation and use of this software when
'such questions are submitted via e-mail to the below address, no promise of further
'support or enhancement is made nor should be assumed.

'Developer Contact Information:
'     William Severance, Jr.
'     WESNet Designs
'     679 Upper Ridge Road
'     Bridgton, ME 04009
'     Phone: 207-647-9375
'     E-Mail: bill@wesnetdesigns.com
'     Website: www.wesnetdesigns.com

Namespace WESNet.DNN.Modules.EPrayer
    Public Class ModeratorInfo
        Inherits UserInfo

#Region "Private Members"
        Private _AssignedDate As DateTime
        Private _ExpiresDate As DateTime
        Private _PostsModerated As Integer
        Private _LastPostModeratedID As Integer
        Private _LastModeratedDate As DateTime
        Private _IsSuspended As Boolean
#End Region

#Region "Public Properties"
        Public Property AssignedDate() As DateTime
            Get
                Return _AssignedDate
            End Get
            Set(ByVal value As DateTime)
                _AssignedDate = value
            End Set
        End Property

        Public Property ExpiresDate() As DateTime
            Get
                Return _ExpiresDate
            End Get
            Set(ByVal value As DateTime)
                _ExpiresDate = value
            End Set
        End Property

        Public Property PostsModerated() As Integer
            Get
                Return _PostsModerated
            End Get
            Set(ByVal value As Integer)
                _PostsModerated = value
            End Set
        End Property

        Public Property LastPostModeratedID() As Integer
            Get
                Return _LastPostModeratedID
            End Get
            Set(ByVal value As Integer)
                _LastPostModeratedID = value
            End Set
        End Property

        Public Property LastModeratedDate() As DateTime
            Get
                Return _LastModeratedDate
            End Get
            Set(ByVal value As DateTime)
                _LastModeratedDate = value
            End Set
        End Property

        Public Property IsSuspended() As Boolean
            Get
                Return _IsSuspended
            End Get
            Set(ByVal value As Boolean)
                _IsSuspended = value
            End Set
        End Property

        Public ReadOnly Property IsExpired() As Boolean
            Get
                Return Not (_ExpiresDate = Null.NullDate OrElse _ExpiresDate > DateTime.Now)
            End Get
        End Property

        Public ReadOnly Property IsActive() As Boolean
            Get
                Return Not (_IsSuspended OrElse IsExpired)
            End Get
        End Property

#End Region

#Region "Constructors"

        Public Sub New()
            MyBase.New()
        End Sub

        Public Sub New(ByVal ModuleID As Integer, ByVal [Alias] As String, ByVal Signature As String, ByVal ExpiresDate As DateTime)
            MyBase.New(ModuleID, [Alias], Signature, 0, True)
            _ExpiresDate = ExpiresDate
        End Sub
#End Region

    End Class
End Namespace
